
#include "utils.h"

namespace anb { namespace net {

std::string utils::get_addr_name(const sockaddr_in* addr) {
	const size_t ip4_name_bufsize = 32;
	char buf[ip4_name_bufsize];
	buf[ip4_name_bufsize - 1] = '\x00';
	uv_ip4_name(addr, buf, ip4_name_bufsize - 1);
	return buf;
}

std::string utils::get_peername(const uv_tcp_t* tcp) {
	struct sockaddr_in addr;
	int len = sizeof(sockaddr_in);
	if (uv_tcp_getpeername(tcp, (struct sockaddr*)&addr, &len) == 0) {
		return get_addr_name(&addr);
	}
	return "?peername?";
}

} }
